package keter.web.controller.admin;

import javax.servlet.http.HttpServletRequest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import keter.framework.web.util.MediaType;
import keter.model.User;
import keter.web.controller.base.KeterBaseController;

@PreAuthorize("hasRole('ADMIN')")
@RequestMapping("/keter/admin/user")
@RestController
public class UserController extends KeterBaseController {

	private static final Logger logger = LoggerFactory.getLogger(UserController.class);
	
	/**
	 * 进入页面
	 * @param model
	 * @return 
	 * @author  gulixing@msn.com
	 * @date    2015年12月21日
	 */
	@GetMapping(value = Routes.Index)
	public String index(Model model) {
		return getDefaultPath()+Routes.Index;
	}
	
	/**
	 * 全部查询
	 * @return 
	 * @author  gulixing@msn.com
	 * @date    2015年12月21日
	 */
	@GetMapping(value = Routes.GetAll, produces = MediaType.JSON)
	public String getAll() {
		return toJson(User.dao.findAll());	
	}
	
	/**
	 * 分页查询
	 * @param model
	 * @return 
	 * @author  gulixing@msn.com
	 * @date    2015年12月21日
	 */
	@GetMapping(value = Routes.GetPaged)
	public String getPaged(@PathVariable int pageNumber, @PathVariable int pageSize) {
	     return toJson(User.dao.findPaged(pageNumber, pageSize));	
	}
	
	/**
	 * id查询
	 * @param id
	 * @return 
	 * @author  gulixing@msn.com
	 * @date    2015年12月21日
	 */
	@GetMapping(value = Routes.Get)
	public String get(@PathVariable Object id) {
		return toJson(User.dao.findById(id));	
	}
	 
	@GetMapping(value = "/update")
    public String update() {
        return Routes.Update;
    }
    /**
     * <p>Method ：add
     * <p>Description : 
     *
     * @param model
     * @return 
     * @author  顾力行-gulixing@msn.com
     */
    //,HttpServletResponse response
    @RequestMapping(value="/update", method = RequestMethod.POST,consumes = MediaType.APPLICATION_JSON_UTF_8)
    @ResponseBody
    public String update(HttpServletRequest request) {
//        Map<String, String> map = success();
//        User user = new User().fromJson(RequestUtil.getJson(request));
//        user.remove(attrs)
//        if(!UserService.service.saveWithDefaultRole(user)){ 
//            map = getErrorMap("用户账号["+user.getStr("username")+"]已存在，请使用其他名称进行注册！");
//        }
        return success();
    }

 
}